package io.framework.modules.soil.service;

import io.framework.common.page.PageData;
import io.framework.common.service.CrudService;
import io.framework.modules.soil.dto.SoilDTO;
import io.framework.modules.soil.entity.SoilEntity;
import io.framework.modules.station.dto.StationDTO;

import java.util.List;
import java.util.Map;

/**
 * 土壤环境质量监测
 *
 * @author Gujq email
 * @since 1.0.0 2020-05-25
 */
public interface SoilService extends CrudService<SoilEntity, SoilDTO> {


    PageData<SoilDTO> page(Map<String,Object> params);

    PageData<SoilDTO> pageList(Map<String,Object> params);

    /**
     * 达标情况 所有村庄
     * @param params
     * @return
     */
    List<Map<String, Object>> getPassInfo(Map<String,Object> params);

    List<Map<String, Object>> getPassNum(Map<String,Object> params);

    /**
     * 土壤监测点位情况
     * @param params
     * @return
     */
    List<Map<String,Object>> getMonitorPointInfo(Map<String,Object> params);

    /**
     * 历史土壤环境质量情况
     * @param params
     * @return
     */
    List<Map<String,Object>> getHistoryQuality(Map<String,Object> params);

    /**
     * 获取所有村庄名称
     * @return
     */
    List<Map<String,Object>> getVillageNameList();

    /**
     * 根据村庄获取当前村庄所有的土地利用类型
     * @param params
     * @return
     */
    List<Map<String,Object>> getPointNamaList(Map<String,Object> params);

    List<SoilDTO> getSoilStationInfoById(Map<String,Object> params);

    /**
     * 验证该月份是否有数据
     * @param year
     * @return
     */
    Boolean checkData(String year);

    /**
     * 土壤村庄达标率排行
     * @param params
     * @return
     */
    List<Map<String,Object>> getPassNumSort(Map<String,Object> params);


    /**
     * 查询数据最新时间
     * @param
     * @return
     */
     String  getDate();

    void deleteInfoByDate(String year);
}
